﻿using System;
using System.ComponentModel;
using System.Reflection;
using System.Runtime.InteropServices;

namespace Teigha.Core
{
	public class OdRxClass : OdRxObject
	{
		[EditorBrowsable(EditorBrowsableState.Never)]
		public OdRxClass(IntPtr cPtr, bool cMemoryOwn) : base(GlobalsPINVOKE.OdRxClass_SWIGUpcast(cPtr), cMemoryOwn)
		{
			this.swigCPtr = new HandleRef(this, cPtr);
		}

		[EditorBrowsable(EditorBrowsableState.Never)]
		public static HandleRef getCPtr(OdRxClass obj)
		{
			if (obj != null)
			{
				return obj.swigCPtr;
			}
			return new HandleRef(null, IntPtr.Zero);
		}

		~OdRxClass()
		{
			this.Dispose();
		}

		public override void Dispose()
		{
			if (this.swigCPtr.Handle != IntPtr.Zero)
			{
				if (this.swigCMemOwn)
				{
					lock (this.locker)
					{
						if (this.swigCPtr.Handle != IntPtr.Zero && this.swigCMemOwn)
						{
							this.swigCMemOwn = false;
							GlobalsPINVOKE.delete_OdRxClass(this.swigCPtr);
						}
					}
					this.swigCMemOwn = false;
				}
				this.swigCPtr = new HandleRef(null, IntPtr.Zero);
			}
			GC.SuppressFinalize(this);
			base.Dispose();
		}

		public OdRxClass() : this(GlobalsPINVOKE.new_OdRxClass(), MemoryManager.GetMemoryManager().GetCurrentTransaction() == null)
		{
			MemoryTransaction currentTransaction = MemoryManager.GetMemoryManager().GetCurrentTransaction();
			if (currentTransaction != null)
			{
				currentTransaction.AddObject(new OdRxClass(this.swigCPtr.Handle, true));
			}
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			this.SwigDirectorConnect();
		}

		public new static OdRxClass cast(OdRxObject pObj)
		{
			MemoryManager memoryManager = MemoryManager.GetMemoryManager();
			MemoryTransaction currentTransaction = memoryManager.GetCurrentTransaction();
			IntPtr p = GlobalsPINVOKE.OdRxClass_cast(OdRxObject.getCPtr(pObj));
			OdRxClass result;
			if (currentTransaction != null)
			{
				currentTransaction.AddObject((OdRxClass)Teigha.Core.Helpers.odrxCreateObjectInternal(p, true));
				result = (OdRxClass)Teigha.Core.Helpers.odrxCreateObjectInternal(p, false);
			}
			else
			{
				result = (OdRxClass)Teigha.Core.Helpers.odrxCreateObjectInternal(p, true);
			}
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public new static OdRxClass desc()
		{
			OdRxClass result = (OdRxClass)Teigha.Core.Helpers.odrxCreateObjectInternal(GlobalsPINVOKE.OdRxClass_desc(), false);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public new virtual OdRxClass isA()
		{
			OdRxClass result = (OdRxClass)Teigha.Core.Helpers.odrxCreateObjectInternal(this.SwigDerivedClassHasMethod("isA", OdRxClass.swigMethodTypes1) ? GlobalsPINVOKE.OdRxClass_isASwigExplicitOdRxClass(this.swigCPtr) : GlobalsPINVOKE.OdRxClass_isA(this.swigCPtr), false);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public new virtual OdRxObject queryX(OdRxClass protocolClass)
		{
			OdRxObject result = Teigha.Core.Helpers.odrxCreateObjectInternal(this.SwigDerivedClassHasMethod("queryX", OdRxClass.swigMethodTypes0) ? GlobalsPINVOKE.OdRxClass_queryXSwigExplicitOdRxClass(this.swigCPtr, OdRxClass.getCPtr(protocolClass)) : GlobalsPINVOKE.OdRxClass_queryX(this.swigCPtr, OdRxClass.getCPtr(protocolClass)), false);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public static OdRxClass createObject()
		{
			MemoryManager memoryManager = MemoryManager.GetMemoryManager();
			MemoryTransaction currentTransaction = memoryManager.GetCurrentTransaction();
			IntPtr p = GlobalsPINVOKE.OdRxClass_createObject();
			OdRxClass result;
			if (currentTransaction != null)
			{
				currentTransaction.AddObject((OdRxClass)Teigha.Core.Helpers.odrxCreateObjectInternal(p, true));
				result = (OdRxClass)Teigha.Core.Helpers.odrxCreateObjectInternal(p, false);
			}
			else
			{
				result = (OdRxClass)Teigha.Core.Helpers.odrxCreateObjectInternal(p, true);
			}
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public static void rxInit()
		{
			GlobalsPINVOKE.OdRxClass_rxInit__SWIG_0();
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public static void rxInit(SWIGTYPE_p_f_p_q_const__OdRxClass_r_OdString_int__void appNameChangeFunc)
		{
			GlobalsPINVOKE.OdRxClass_rxInit__SWIG_1(SWIGTYPE_p_f_p_q_const__OdRxClass_r_OdString_int__void.getCPtr(appNameChangeFunc));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public static void rxUninit()
		{
			GlobalsPINVOKE.OdRxClass_rxUninit();
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual OdRxObject addX(OdRxClass pProtocolClass, OdRxObject pProtocolObject)
		{
			MemoryManager memoryManager = MemoryManager.GetMemoryManager();
			MemoryTransaction currentTransaction = memoryManager.GetCurrentTransaction();
			IntPtr p = this.SwigDerivedClassHasMethod("addX", OdRxClass.swigMethodTypes2) ? GlobalsPINVOKE.OdRxClass_addXSwigExplicitOdRxClass(this.swigCPtr, OdRxClass.getCPtr(pProtocolClass), OdRxObject.getCPtr(pProtocolObject)) : GlobalsPINVOKE.OdRxClass_addX(this.swigCPtr, OdRxClass.getCPtr(pProtocolClass), OdRxObject.getCPtr(pProtocolObject));
			OdRxObject result;
			if (currentTransaction != null)
			{
				currentTransaction.AddObject(Teigha.Core.Helpers.odrxCreateObjectInternal(p, true));
				result = Teigha.Core.Helpers.odrxCreateObjectInternal(p, false);
			}
			else
			{
				result = Teigha.Core.Helpers.odrxCreateObjectInternal(p, true);
			}
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual OdRxObject getX(OdRxClass pProtocolClass)
		{
			MemoryManager memoryManager = MemoryManager.GetMemoryManager();
			MemoryTransaction currentTransaction = memoryManager.GetCurrentTransaction();
			IntPtr p = this.SwigDerivedClassHasMethod("getX", OdRxClass.swigMethodTypes3) ? GlobalsPINVOKE.OdRxClass_getXSwigExplicitOdRxClass(this.swigCPtr, OdRxClass.getCPtr(pProtocolClass)) : GlobalsPINVOKE.OdRxClass_getX(this.swigCPtr, OdRxClass.getCPtr(pProtocolClass));
			OdRxObject result;
			if (currentTransaction != null)
			{
				currentTransaction.AddObject(Teigha.Core.Helpers.odrxCreateObjectInternal(p, true));
				result = Teigha.Core.Helpers.odrxCreateObjectInternal(p, false);
			}
			else
			{
				result = Teigha.Core.Helpers.odrxCreateObjectInternal(p, true);
			}
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual OdRxObject delX(OdRxClass pProtocolClass)
		{
			MemoryManager memoryManager = MemoryManager.GetMemoryManager();
			MemoryTransaction currentTransaction = memoryManager.GetCurrentTransaction();
			IntPtr p = this.SwigDerivedClassHasMethod("delX", OdRxClass.swigMethodTypes4) ? GlobalsPINVOKE.OdRxClass_delXSwigExplicitOdRxClass(this.swigCPtr, OdRxClass.getCPtr(pProtocolClass)) : GlobalsPINVOKE.OdRxClass_delX(this.swigCPtr, OdRxClass.getCPtr(pProtocolClass));
			OdRxObject result;
			if (currentTransaction != null)
			{
				currentTransaction.AddObject(Teigha.Core.Helpers.odrxCreateObjectInternal(p, true));
				result = Teigha.Core.Helpers.odrxCreateObjectInternal(p, false);
			}
			else
			{
				result = Teigha.Core.Helpers.odrxCreateObjectInternal(p, true);
			}
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual OdRxObject create()
		{
			MemoryManager memoryManager = MemoryManager.GetMemoryManager();
			MemoryTransaction currentTransaction = memoryManager.GetCurrentTransaction();
			IntPtr p = GlobalsPINVOKE.OdRxClass_create(this.swigCPtr);
			OdRxObject result;
			if (currentTransaction != null)
			{
				currentTransaction.AddObject(Teigha.Core.Helpers.odrxCreateObjectInternal(p, true));
				result = Teigha.Core.Helpers.odrxCreateObjectInternal(p, false);
			}
			else
			{
				result = Teigha.Core.Helpers.odrxCreateObjectInternal(p, true);
			}
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual string appName()
		{
			string result = GlobalsPINVOKE.OdRxClass_appName(this.swigCPtr);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual SWIGTYPE_p_f_p_q_const__OdRxClass_r_OdString_int__void appNameCallbackPtr()
		{
			IntPtr intPtr = GlobalsPINVOKE.OdRxClass_appNameCallbackPtr(this.swigCPtr);
			SWIGTYPE_p_f_p_q_const__OdRxClass_r_OdString_int__void result = (intPtr == IntPtr.Zero) ? null : new SWIGTYPE_p_f_p_q_const__OdRxClass_r_OdString_int__void(intPtr, false);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual string dxfName()
		{
			string result = GlobalsPINVOKE.OdRxClass_dxfName(this.swigCPtr);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual string name()
		{
			string result = GlobalsPINVOKE.OdRxClass_name(this.swigCPtr);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual DwgVersion getClassVersion(out MaintReleaseVer pMaintReleaseVer)
		{
			DwgVersion result = (DwgVersion)GlobalsPINVOKE.OdRxClass_getClassVersion__SWIG_0(this.swigCPtr, out pMaintReleaseVer);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual DwgVersion getClassVersion()
		{
			DwgVersion result = (DwgVersion)GlobalsPINVOKE.OdRxClass_getClassVersion__SWIG_1(this.swigCPtr);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual uint proxyFlags()
		{
			uint result = GlobalsPINVOKE.OdRxClass_proxyFlags(this.swigCPtr);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual bool isDerivedFrom(OdRxClass pClass)
		{
			bool result = this.SwigDerivedClassHasMethod("isDerivedFrom", OdRxClass.swigMethodTypes13) ? GlobalsPINVOKE.OdRxClass_isDerivedFromSwigExplicitOdRxClass(this.swigCPtr, OdRxClass.getCPtr(pClass)) : GlobalsPINVOKE.OdRxClass_isDerivedFrom(this.swigCPtr, OdRxClass.getCPtr(pClass));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual OdRxClass myParent()
		{
			OdRxClass result = (OdRxClass)Teigha.Core.Helpers.odrxCreateObjectInternal(GlobalsPINVOKE.OdRxClass_myParent(this.swigCPtr), false);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual OdRxModule module()
		{
			OdRxModule result = (OdRxModule)Teigha.Core.Helpers.odrxCreateObjectInternal(GlobalsPINVOKE.OdRxClass_module(this.swigCPtr), false);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual uint customFlags()
		{
			uint result = GlobalsPINVOKE.OdRxClass_customFlags(this.swigCPtr);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		private void SwigDirectorConnect()
		{
			if (this.SwigDerivedClassHasMethod("queryX", OdRxClass.swigMethodTypes0))
			{
				this.swigDelegate0 = new OdRxClass.SwigDelegateOdRxClass_0(this.SwigDirectorqueryX);
			}
			if (this.SwigDerivedClassHasMethod("isA", OdRxClass.swigMethodTypes1))
			{
				this.swigDelegate1 = new OdRxClass.SwigDelegateOdRxClass_1(this.SwigDirectorisA);
			}
			if (this.SwigDerivedClassHasMethod("addX", OdRxClass.swigMethodTypes2))
			{
				this.swigDelegate2 = new OdRxClass.SwigDelegateOdRxClass_2(this.SwigDirectoraddX);
			}
			if (this.SwigDerivedClassHasMethod("getX", OdRxClass.swigMethodTypes3))
			{
				this.swigDelegate3 = new OdRxClass.SwigDelegateOdRxClass_3(this.SwigDirectorgetX);
			}
			if (this.SwigDerivedClassHasMethod("delX", OdRxClass.swigMethodTypes4))
			{
				this.swigDelegate4 = new OdRxClass.SwigDelegateOdRxClass_4(this.SwigDirectordelX);
			}
			if (this.SwigDerivedClassHasMethod("create", OdRxClass.swigMethodTypes5))
			{
				this.swigDelegate5 = new OdRxClass.SwigDelegateOdRxClass_5(this.SwigDirectorcreate);
			}
			if (this.SwigDerivedClassHasMethod("appName", OdRxClass.swigMethodTypes6))
			{
				this.swigDelegate6 = new OdRxClass.SwigDelegateOdRxClass_6(this.SwigDirectorappName);
			}
			if (this.SwigDerivedClassHasMethod("appNameCallbackPtr", OdRxClass.swigMethodTypes7))
			{
				this.swigDelegate7 = new OdRxClass.SwigDelegateOdRxClass_7(this.SwigDirectorappNameCallbackPtr);
			}
			if (this.SwigDerivedClassHasMethod("dxfName", OdRxClass.swigMethodTypes8))
			{
				this.swigDelegate8 = new OdRxClass.SwigDelegateOdRxClass_8(this.SwigDirectordxfName);
			}
			if (this.SwigDerivedClassHasMethod("name", OdRxClass.swigMethodTypes9))
			{
				this.swigDelegate9 = new OdRxClass.SwigDelegateOdRxClass_9(this.SwigDirectorname);
			}
			if (this.SwigDerivedClassHasMethod("getClassVersion", OdRxClass.swigMethodTypes10))
			{
				this.swigDelegate10 = new OdRxClass.SwigDelegateOdRxClass_10(this.SwigDirectorgetClassVersion__SWIG_0);
			}
			if (this.SwigDerivedClassHasMethod("getClassVersion", OdRxClass.swigMethodTypes11))
			{
				this.swigDelegate11 = new OdRxClass.SwigDelegateOdRxClass_11(this.SwigDirectorgetClassVersion__SWIG_1);
			}
			if (this.SwigDerivedClassHasMethod("proxyFlags", OdRxClass.swigMethodTypes12))
			{
				this.swigDelegate12 = new OdRxClass.SwigDelegateOdRxClass_12(this.SwigDirectorproxyFlags);
			}
			if (this.SwigDerivedClassHasMethod("isDerivedFrom", OdRxClass.swigMethodTypes13))
			{
				this.swigDelegate13 = new OdRxClass.SwigDelegateOdRxClass_13(this.SwigDirectorisDerivedFrom);
			}
			if (this.SwigDerivedClassHasMethod("myParent", OdRxClass.swigMethodTypes14))
			{
				this.swigDelegate14 = new OdRxClass.SwigDelegateOdRxClass_14(this.SwigDirectormyParent);
			}
			if (this.SwigDerivedClassHasMethod("module", OdRxClass.swigMethodTypes15))
			{
				this.swigDelegate15 = new OdRxClass.SwigDelegateOdRxClass_15(this.SwigDirectormodule);
			}
			if (this.SwigDerivedClassHasMethod("customFlags", OdRxClass.swigMethodTypes16))
			{
				this.swigDelegate16 = new OdRxClass.SwigDelegateOdRxClass_16(this.SwigDirectorcustomFlags);
			}
			GlobalsPINVOKE.OdRxClass_director_connect(this.swigCPtr, this.swigDelegate0, this.swigDelegate1, this.swigDelegate2, this.swigDelegate3, this.swigDelegate4, this.swigDelegate5, this.swigDelegate6, this.swigDelegate7, this.swigDelegate8, this.swigDelegate9, this.swigDelegate10, this.swigDelegate11, this.swigDelegate12, this.swigDelegate13, this.swigDelegate14, this.swigDelegate15, this.swigDelegate16);
		}

		private bool SwigDerivedClassHasMethod(string methodName, Type[] methodTypes)
		{
			MethodInfo method = base.GetType().GetMethod(methodName, BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic, null, methodTypes, null);
			return method.DeclaringType.IsSubclassOf(typeof(OdRxClass));
		}

		private IntPtr SwigDirectorqueryX(IntPtr protocolClass)
		{
			return OdRxObject.getCPtr(this.queryX((OdRxClass)Teigha.Core.Helpers.odrxCreateObjectInternal(protocolClass, false))).Handle;
		}

		private IntPtr SwigDirectorisA()
		{
			return OdRxClass.getCPtr(this.isA()).Handle;
		}

		private IntPtr SwigDirectoraddX(IntPtr pProtocolClass, IntPtr pProtocolObject)
		{
			return OdRxObject.getCPtr(this.addX((OdRxClass)Teigha.Core.Helpers.odrxCreateObjectInternal(pProtocolClass, false), Teigha.Core.Helpers.odrxCreateObjectInternal(pProtocolObject, false))).Handle;
		}

		private IntPtr SwigDirectorgetX(IntPtr pProtocolClass)
		{
			return OdRxObject.getCPtr(this.getX((OdRxClass)Teigha.Core.Helpers.odrxCreateObjectInternal(pProtocolClass, false))).Handle;
		}

		private IntPtr SwigDirectordelX(IntPtr pProtocolClass)
		{
			return OdRxObject.getCPtr(this.delX((OdRxClass)Teigha.Core.Helpers.odrxCreateObjectInternal(pProtocolClass, false))).Handle;
		}

		private IntPtr SwigDirectorcreate()
		{
			return OdRxObject.getCPtr(this.create()).Handle;
		}

		[return: MarshalAs(UnmanagedType.LPWStr)]
		private string SwigDirectorappName()
		{
			return this.appName();
		}

		private IntPtr SwigDirectorappNameCallbackPtr()
		{
			return SWIGTYPE_p_f_p_q_const__OdRxClass_r_OdString_int__void.getCPtr(this.appNameCallbackPtr()).Handle;
		}

		[return: MarshalAs(UnmanagedType.LPWStr)]
		private string SwigDirectordxfName()
		{
			return this.dxfName();
		}

		[return: MarshalAs(UnmanagedType.LPWStr)]
		private string SwigDirectorname()
		{
			return this.name();
		}

		private int SwigDirectorgetClassVersion__SWIG_0(MaintReleaseVer pMaintReleaseVer)
		{
			return (int)this.getClassVersion(out pMaintReleaseVer);
		}

		private int SwigDirectorgetClassVersion__SWIG_1()
		{
			return (int)this.getClassVersion();
		}

		private uint SwigDirectorproxyFlags()
		{
			return this.proxyFlags();
		}

		private bool SwigDirectorisDerivedFrom(IntPtr pClass)
		{
			return this.isDerivedFrom((OdRxClass)Teigha.Core.Helpers.odrxCreateObjectInternal(pClass, false));
		}

		private IntPtr SwigDirectormyParent()
		{
			return OdRxClass.getCPtr(this.myParent()).Handle;
		}

		private IntPtr SwigDirectormodule()
		{
			return OdRxModule.getCPtr(this.module()).Handle;
		}

		private uint SwigDirectorcustomFlags()
		{
			return this.customFlags();
		}

		private object locker = new object();

		private HandleRef swigCPtr;

		private OdRxClass.SwigDelegateOdRxClass_0 swigDelegate0;

		private OdRxClass.SwigDelegateOdRxClass_1 swigDelegate1;

		private OdRxClass.SwigDelegateOdRxClass_2 swigDelegate2;

		private OdRxClass.SwigDelegateOdRxClass_3 swigDelegate3;

		private OdRxClass.SwigDelegateOdRxClass_4 swigDelegate4;

		private OdRxClass.SwigDelegateOdRxClass_5 swigDelegate5;

		private OdRxClass.SwigDelegateOdRxClass_6 swigDelegate6;

		private OdRxClass.SwigDelegateOdRxClass_7 swigDelegate7;

		private OdRxClass.SwigDelegateOdRxClass_8 swigDelegate8;

		private OdRxClass.SwigDelegateOdRxClass_9 swigDelegate9;

		private OdRxClass.SwigDelegateOdRxClass_10 swigDelegate10;

		private OdRxClass.SwigDelegateOdRxClass_11 swigDelegate11;

		private OdRxClass.SwigDelegateOdRxClass_12 swigDelegate12;

		private OdRxClass.SwigDelegateOdRxClass_13 swigDelegate13;

		private OdRxClass.SwigDelegateOdRxClass_14 swigDelegate14;

		private OdRxClass.SwigDelegateOdRxClass_15 swigDelegate15;

		private OdRxClass.SwigDelegateOdRxClass_16 swigDelegate16;

		private static Type[] swigMethodTypes0 = new Type[]
		{
			typeof(OdRxClass)
		};

		private static Type[] swigMethodTypes1 = new Type[0];

		private static Type[] swigMethodTypes2 = new Type[]
		{
			typeof(OdRxClass),
			typeof(OdRxObject)
		};

		private static Type[] swigMethodTypes3 = new Type[]
		{
			typeof(OdRxClass)
		};

		private static Type[] swigMethodTypes4 = new Type[]
		{
			typeof(OdRxClass)
		};

		private static Type[] swigMethodTypes5 = new Type[0];

		private static Type[] swigMethodTypes6 = new Type[0];

		private static Type[] swigMethodTypes7 = new Type[0];

		private static Type[] swigMethodTypes8 = new Type[0];

		private static Type[] swigMethodTypes9 = new Type[0];

		private static Type[] swigMethodTypes10 = new Type[]
		{
			typeof(MaintReleaseVer).MakeByRefType()
		};

		private static Type[] swigMethodTypes11 = new Type[0];

		private static Type[] swigMethodTypes12 = new Type[0];

		private static Type[] swigMethodTypes13 = new Type[]
		{
			typeof(OdRxClass)
		};

		private static Type[] swigMethodTypes14 = new Type[0];

		private static Type[] swigMethodTypes15 = new Type[0];

		private static Type[] swigMethodTypes16 = new Type[0];

		public delegate IntPtr SwigDelegateOdRxClass_0(IntPtr protocolClass);

		public delegate IntPtr SwigDelegateOdRxClass_1();

		public delegate IntPtr SwigDelegateOdRxClass_2(IntPtr pProtocolClass, IntPtr pProtocolObject);

		public delegate IntPtr SwigDelegateOdRxClass_3(IntPtr pProtocolClass);

		public delegate IntPtr SwigDelegateOdRxClass_4(IntPtr pProtocolClass);

		public delegate IntPtr SwigDelegateOdRxClass_5();

		[return: MarshalAs(UnmanagedType.LPWStr)]
		public delegate string SwigDelegateOdRxClass_6();

		public delegate IntPtr SwigDelegateOdRxClass_7();

		[return: MarshalAs(UnmanagedType.LPWStr)]
		public delegate string SwigDelegateOdRxClass_8();

		[return: MarshalAs(UnmanagedType.LPWStr)]
		public delegate string SwigDelegateOdRxClass_9();

		public delegate int SwigDelegateOdRxClass_10(MaintReleaseVer pMaintReleaseVer);

		public delegate int SwigDelegateOdRxClass_11();

		public delegate uint SwigDelegateOdRxClass_12();

		public delegate bool SwigDelegateOdRxClass_13(IntPtr pClass);

		public delegate IntPtr SwigDelegateOdRxClass_14();

		public delegate IntPtr SwigDelegateOdRxClass_15();

		public delegate uint SwigDelegateOdRxClass_16();
	}
}
